home *** CD-ROM | disk | FTP | other *** search
- Path: news.larc.nasa.gov!amiga-request
- From: amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
- Subject: v91i171: WBLink 1.00 - create links to files from Workbench 2.0, Part01/01
- Reply-To: davids@btr.uucp (Dave Schreiber)
- Newsgroups: comp.sources.amiga
- Message-ID: <comp.sources.amiga.v91i171@ab20.larc.nasa.gov>
- Date: 19 Sep 91 10:10:04 GMT
- Approved: tadguy@uunet.UU.NET (Tad Guy)
- X-Mail-Submissions-To: amiga@uunet.uu.net
- X-Post-Discussions-To: comp.sys.amiga.misc
-
- Submitted-by: davids@btr.uucp (Dave Schreiber)
- Posting-number: Volume 91, Issue 171
- Archive-name: utilities/wblink-1.00/part01
-
- [ includes uuencoded executable and icons ...tad ]
-
- WBLink lets you create links to files from Workbench. It puts an icon on
- the Workbench screen that creates a link to any file whose icon is dropped
- on it. For Workbench 2.0 or later only. Source included.
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 1)."
- # Contents: Source Source/WBLink.c Source/WBLink.h WBLink.doc
- # WBLink.doc.uu WBLink.info.uu WBLink.uu
- # Wrapped by tadguy@ab20 on Wed Sep 18 19:27:53 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test ! -d 'Source' ; then
- echo shar: Creating directory \"'Source'\"
- mkdir 'Source'
- fi
- if test -f 'Source/WBLink.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Source/WBLink.c'\"
- else
- echo shar: Extracting \"'Source/WBLink.c'\" \(7936 characters\)
- sed "s/^X//" >'Source/WBLink.c' <<'END_OF_FILE'
- X
- X/*************************************************************************/
- X/* WBLink V1.00 */
- X/* */
- X/* WBLink is Copyright 1991 by Dave Schreiber. All Rights Reserved */
- X/* */
- X/* WBLink puts an AppIcon on the Workbench. When a file is dropped onto */
- X/* the icon, a link to that file is generated. */
- X/*************************************************************************/
- X
- X
- X#include <exec/types.h>
- X#include <exec/exec.h>
- X#include <intuition/intuition.h>
- X#include <workbench/startup.h>
- X#include <workbench/workbench.h>
- X#include <dos/dos.h>
- X
- X#include <proto/wb.h>
- X#include <proto/intuition.h>
- X#include <proto/exec.h>
- X#include <proto/dos.h>
- X#include <proto/icon.h>
- X
- X#include "WBLink.h"
- X
- X/* Function prototypes*/
- Xvoid _main();
- XBOOL GetLinkFilename(char *src,char *dest);
- Xvoid MakeName(char *src,char *dest,int c);
- Xvoid FindOrig(char *src,char *dest);
- Xvoid cleanup(UWORD err);
- X
- X/* Global variables */
- Xstruct Library *WorkbenchBase=NULL;
- Xstruct Library *IconBase=NULL;
- Xstruct Library *IntuitionBase=NULL;
- Xstruct Port *port=NULL;
- Xstruct AppIcon *appIcon=NULL;
- X
- X/*The version string*/
- Xchar *version="$VER: WBLink V1.00 (4.9.91)";
- X
- Xvoid _main()
- X{
- X struct AppMessage *mesg;
- X char dest[40],*src,temp[140];
- X BPTR oldDir,fileLock;
- X struct DiskObject *diskObj;
- X
- X BOOL abort=FALSE;
- X BOOL status;
- X BOOL isDir=FALSE;
- X UBYTE c;
- X
- X /* Open libraries */
- X WorkbenchBase=OpenLibrary("workbench.library",0L);
- X if(WorkbenchBase==NULL)
- X cleanup(50);
- X
- X IconBase=OpenLibrary("icon.library",0L);
- X if(IconBase==NULL)
- X cleanup(75);
- X
- X IntuitionBase=OpenLibrary("intuition.library",0L);
- X if(IntuitionBase==NULL)
- X cleanup(85);
- X
- X /* Create a port for Workbench to use to communicate with us */
- X port=CreatePort("",0);
- X if(port==NULL)
- X cleanup(100);
- X
- X /* Create the application icon */
- X appIcon = AddAppIcon(1,1,"WBLink",port,NULL,&iconObj,TAG_DONE,NULL);
- X
- X if(appIcon==NULL)
- X cleanup(300);
- X
- X /* Loop until the user asks to quit */
- X while(!abort)
- X {
- X /* Wait for a message from Workbench */
- X WaitPort(port);
- X
- X /* Get the message */
- X mesg=(struct AppMessage *)GetMsg(port);
- X
- X /* If am_NumArgs != 0, it means one or more icons were dropped on */
- X /* the AppIcon */
- X if(mesg->am_NumArgs!=0)
- X {
- X /* Loop for each file */
- X for(c=0;c<mesg->am_NumArgs;c++)
- X {
- X /* Check to see if this is a drawer */
- X if(mesg->am_ArgList[c].wa_Name[0]==0 &&
- X mesg->am_ArgList[c].wa_Lock != NULL)
- X {
- X isDir=TRUE;
- X
- X /* If it is a drawer, we didn't get the name from Workbench*/
- X /* So we need to get the name from the lock instead*/
- X if(!NameFromLock(mesg->am_ArgList[c].wa_Lock,temp,139))
- X continue;
- X
- X /* The name we get is the full path name. This function*/
- X /* call will leave us with just the directory*/
- X src=FilePart(temp);
- X }
- X else
- X {
- X /* If it is a file, just copy the filename */
- X strcpy(src,mesg->am_ArgList[c].wa_Name);
- X isDir=FALSE;
- X }
- X
- X /* Move to the file's directory*/
- X if(isDir)
- X /* If we got a drawer, the lock is to the directory */
- X /* itself. To get the directory that the drawer is in, */
- X /* we need to use ParentDir() */
- X oldDir=CurrentDir(ParentDir(mesg->am_ArgList[c].wa_Lock));
- X else
- X oldDir=CurrentDir(mesg->am_ArgList[c].wa_Lock);
- X
- X /* Get the destination filename (i.e. foo -> Link_to_foo ) */
- X if(GetLinkFilename(src,dest))
- X {
- X /* Get a lock on the file that was given */
- X if(isDir)
- X fileLock=mesg->am_ArgList[c].wa_Lock;
- X else
- X fileLock=Lock(src,SHARED_LOCK);
- X
- X /* If we got the lock, make the link */
- X if(fileLock!=NULL)
- X {
- X status=MakeLink(dest,fileLock,FALSE);
- X if(!isDir)
- X UnLock(fileLock);
- X
- X /* If we managed to make the link, copy (NOT link) the */
- X /* source's icon */
- X if(status)
- X {
- X /* Get the source file's icon */
- X diskObj=GetDiskObject(src);
- X
- X if(diskObj!=NULL)
- X {
- X /* Reset the icon's position*/
- X diskObj->do_CurrentY=NO_ICON_POSITION;
- X diskObj->do_CurrentX=NO_ICON_POSITION;
- X
- X /* Store the icon as the destination's icon */
- X PutDiskObject(dest,diskObj);
- X
- X /* Free the disk object's memory */
- X FreeDiskObject(diskObj);
- X }
- X }
- X else
- X EasyRequest(NULL,&erError2,NULL,
- X "Couldn't create the link",dest);
- X }
- X else
- X EasyRequest(NULL,&erError3,NULL,"Couldn't open",
- X src,"for linking");
- X }
- X else
- X EasyRequest(NULL,&erError2,NULL,"Couldn't create",
- X "a filename for the link");
- X /* Restore the old directory */
- X CurrentDir(oldDir);
- X }
- X }
- X else /* If am_NumArgs==0, the user double clicked on the icon */
- X /* So put up the About... requestor, and quit if the user */
- X /* clicks on the "Quit WBLink" button */
- X abort=(EasyRequestArgs(NULL,&erAboutWBLink,NULL,NULL)==1);
- X
- X /* Reply to the message */
- X ReplyMsg((struct Message *)mesg);
- X }
- X
- X /* We're done, so exit */
- X cleanup(0);
- X}
- X
- X
- X/* Create a link filename (i.e. foo -> Link_to_foo ) */
- XBOOL GetLinkFilename(char *src,char *dest)
- X{
- X UWORD c;
- X BPTR lock=1;
- X char realSrc[40];
- X
- X /* Strip away the link portion of the filename, leaving the original */
- X /* filename */
- X FindOrig(src,realSrc);
- X
- X /* Loop until we get a unused filename slot */
- X for(c=1;c<1000 && lock!=NULL;c++)
- X {
- X /* Create a filename (e.g. Link_22_to_HelloWorld) */
- X MakeName(realSrc,dest,c);
- X
- X /* See if it exists */
- X lock=Lock(dest,SHARED_LOCK);
- X
- X /* If the lock was successful, unlock the file */
- X if(lock!=NULL)
- X UnLock(lock);
- X }
- X
- X /* Return TRUE if the destination file name is <26 characters ( so */
- X /* that the filename + .info won't exceed the Amiga's 30 character */
- X /* filename limit) and if c<1000 (1000 is the upper limit on the */
- X /* number of files that will be created; it's in place as a safe- */
- X /* guard, to keep the above loop from becoming infinite) */
- X return((strlen(dest)<=25) && !(c==1000));
- X}
- X
- X/* Add the link prefix to the given filename */
- Xvoid MakeName(char *src,char *dest,int c)
- X{
- X /* For c==1, don't use a number (e.g. foo -> Link_to_foo) */
- X if(c==1)
- X {
- X strcpy(dest,"Link_to_");
- X strcat(dest,src);
- X }
- X /* For all others, include the given number (e.g. for c==2, foo -> */
- X /* Link_2_to_foo */
- X else
- X {
- X strcpy(dest,"Link_");
- X stci_d(&dest[5],c);
- X strcat(dest,"_to_");
- X strcat(dest,src);
- X }
- X}
- X
- X
- X/* Strip the link information from the filename (i.e. convert */
- X/* Link_22_to_foobar into foobar) to make the 'original' filename */
- Xvoid FindOrig(char *src,char *dest)
- X{
- X UBYTE c,numUS;
- X
- X if((strnicmp(src,"link_",5))==0)
- X if((strnicmp(src,"link_to_",8))==0)
- X /* This handles Link_to_<filename> */
- X strcpy(dest,&src[8]);
- X else
- X {
- X /* This handles Link_<number>_to_<filename> */
- X /* Move past two underscores (there are two after the <number>) */
- X for(c=5,numUS=0;c<30;c++)
- X {
- X if(src[c]=='_')
- X numUS++;
- X if(numUS==2)
- X {
- X /* Whatever is left is the original filename */
- X strcpy(dest,&src[c+1]);
- X return;
- X }
- X }
- X /*If we couldn't find two underscores, just copy the whole thing*/
- X strcpy(dest,src);
- X }
- X else /*This is just a regular filename, so copy the whole thing */
- X strcpy(dest,src);
- X}
- X
- X/* This frees allocated resources */
- Xvoid cleanup(UWORD err)
- X{
- X /* The AppIcon */
- X if(appIcon!=NULL)
- X RemoveAppIcon(appIcon);
- X
- X /* The port */
- X if(port!=NULL)
- X DeletePort(port);
- X
- X
- X /* The libraries */
- X if(WorkbenchBase!=NULL)
- X CloseLibrary(WorkbenchBase);
- X
- X if(IconBase!=NULL)
- X CloseLibrary(IconBase);
- X
- X if(IntuitionBase!=NULL)
- X CloseLibrary(IntuitionBase);
- X
- X /* Exit the program, using the specified error code */
- X exit(err);
- X}
- X
- X
- END_OF_FILE
- if test 7936 -ne `wc -c <'Source/WBLink.c'`; then
- echo shar: \"'Source/WBLink.c'\" unpacked with wrong size!
- fi
- # end of 'Source/WBLink.c'
- fi
- if test -f 'Source/WBLink.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Source/WBLink.h'\"
- else
- echo shar: Extracting \"'Source/WBLink.h'\" \(3414 characters\)
- sed "s/^X//" >'Source/WBLink.h' <<'END_OF_FILE'
- X
- XUSHORT ImageData1[] = {
- X 0x1FFF,0xFFE0,0x0000,0x6000,0x0018,0x0000,0x4000,0x0008,
- X 0x0000,0xC7FF,0xFF8C,0x0000,0x8C00,0xFEC4,0x0000,0x8803,
- X 0x83C4,0x0000,0x8802,0x00C4,0x0000,0x8804,0x0044,0x0000,
- X 0x8C04,0x7CC4,0x0000,0xC7FC,0xFF8C,0x0000,0x4004,0x8008,
- X 0x0000,0x6004,0x8018,0x0000,0x1FFC,0xFFE0,0x0000,0x0004,
- X 0x8FFF,0xFFE0,0x0004,0xB000,0x0018,0x0000,0x2000,0x0008,
- X 0x0000,0x63FF,0xFF8C,0x0000,0x4640,0x00C4,0x0004,0xC640,
- X 0x0044,0x0004,0xC640,0x0044,0x0004,0xC640,0x0044,0x0004,
- X 0xC640,0x00C4,0x0004,0xE67F,0xFF8C,0x0004,0x7C40,0x0008,
- X 0x0004,0x0040,0x0018,0x0002,0x00FF,0xFFE0,0x0003,0x8380,
- X 0x0000,0x0000,0xFE00,0x0000,0x0000,0x0000,0x0000,0x1FFF,
- X 0xFFE0,0x0000,0x3FFF,0xFFF0,0x0000,0x3800,0x0070,0x0000,
- X 0x7000,0x0038,0x0000,0x7000,0x7C38,0x0000,0x7001,0xFF38,
- X 0x0000,0x7003,0xFFB8,0x0000,0x7003,0x8338,0x0000,0x3803,
- X 0x0070,0x0000,0x3FFB,0x7FF0,0x0000,0x1FFB,0x7FE0,0x0000,
- X 0x0003,0x0000,0x0000,0x0003,0x0000,0x0000,0x0003,0x0FFF,
- X 0xFFE0,0x0000,0x1FFF,0xFFF0,0x0000,0x1C00,0x0070,0x0000,
- X 0x3980,0x0038,0x0003,0x3980,0x0038,0x0003,0x3980,0x0038,
- X 0x0003,0x3980,0x0038,0x0003,0x3980,0x0038,0x0003,0x1980,
- X 0x0070,0x0003,0x83BF,0xFFF0,0x0003,0xFFBF,0xFFE0,0x0001,
- X 0xFF00,0x0000,0x0000,0x7C00,0x0000,0x0000,0x0000,0x0000
- X};
- X
- Xstruct Image Image1 = {
- X 0,0,
- X 46,28,
- X 2,
- X ImageData1,
- X 0x0003,0x0000,
- X NULL
- X};
- X
- XUSHORT ImageData2[] = {
- X 0x1FFF,0xFFE0,0x0000,0x6000,0x0018,0x0000,0x4000,0x0008,
- X 0x0000,0xC7FF,0xFF8C,0x0000,0x8C00,0xFEC4,0x0000,0x8803,
- X 0x83C4,0x0000,0x8802,0x00C4,0x0000,0x8804,0x0044,0x0000,
- X 0x8C04,0x7CC4,0x0000,0xC7FC,0xFF8C,0x0000,0x4004,0x8008,
- X 0x0000,0x6004,0x8018,0x0000,0x1FFC,0xFFE0,0x0000,0x0004,
- X 0x8FFF,0xFFE0,0x0004,0xB000,0x0018,0x0004,0xA000,0x0008,
- X 0x0004,0xE3FF,0xFF8C,0x0004,0xC640,0x00C4,0x0004,0xC640,
- X 0x0044,0x0004,0xC640,0x0044,0x0004,0xC640,0x0044,0x0004,
- X 0xC640,0x00C4,0x0004,0xE67F,0xFF8C,0x0004,0x7C40,0x0008,
- X 0x0004,0x0040,0x0018,0x0002,0x00FF,0xFFE0,0x0003,0x8380,
- X 0x0000,0x0000,0xFE00,0x0000,0x0000,0x0000,0x0000,0x1FFF,
- X 0xFFE0,0x0000,0x3FFF,0xFFF0,0x0000,0x3800,0x0070,0x0000,
- X 0x7000,0x0038,0x0000,0x7000,0x7C38,0x0000,0x7001,0xFF38,
- X 0x0000,0x7003,0xFFB8,0x0000,0x7003,0x8338,0x0000,0x3803,
- X 0x0070,0x0000,0x3FFB,0x7FF0,0x0000,0x1FFB,0x7FE0,0x0000,
- X 0x0003,0x0000,0x0000,0x0003,0x0000,0x0000,0x0003,0x0FFF,
- X 0xFFE0,0x0003,0x1FFF,0xFFF0,0x0003,0x1C00,0x0070,0x0003,
- X 0x3980,0x0038,0x0003,0x3980,0x0038,0x0003,0x3980,0x0038,
- X 0x0003,0x3980,0x0038,0x0003,0x3980,0x0038,0x0003,0x1980,
- X 0x0070,0x0003,0x83BF,0xFFF0,0x0003,0xFFBF,0xFFE0,0x0001,
- X 0xFF00,0x0000,0x0000,0x7C00,0x0000,0x0000,0x0000,0x0000
- X};
- X
- Xstruct Image Image2 = {
- X 0,0,
- X 46,28,
- X 2,
- X ImageData2,
- X 0x0003,0x0000,
- X NULL
- X};
- X
- Xstruct DiskObject iconObj=
- X{
- X WB_DISKMAGIC,
- X WB_DISKVERSION,
- X {
- X NULL,
- X 87,30,
- X 46,28,
- X GADGHIMAGE+GADGIMAGE,
- X RELVERIFY,
- X BOOLGADGET,
- X (APTR)&Image1,
- X (APTR)&Image2,
- X NULL,
- X NULL,
- X NULL,
- X NULL,
- X NULL
- X
- X },
- X WBAPPICON,
- X NULL,
- X NULL,
- X NO_ICON_POSITION,
- X NO_ICON_POSITION,
- X NULL,
- X NULL,
- X NULL
- X};
- X
- Xstruct EasyStruct erAboutWBLink=
- X{
- X sizeof(struct EasyStruct),
- X 0,
- X "About...",
- X "WBLink V1.00\nReleased September 4, 1991\n\2511991 by Dave Schreiber",
- X "Quit WBLink|Don't Quit"
- X};
- X
- Xstruct EasyStruct erError2=
- X{
- X sizeof(struct EasyStruct),
- X 0,
- X "Program Request...",
- X "Error: %s\n%s",
- X "Ok"
- X};
- X
- Xstruct EasyStruct erError3=
- X{
- X sizeof(struct EasyStruct),
- X 0,
- X "Program Request...",
- X "Error: %s\n%s\n%s",
- X "Ok"
- X};
- X
- END_OF_FILE
- if test 3414 -ne `wc -c <'Source/WBLink.h'`; then
- echo shar: \"'Source/WBLink.h'\" unpacked with wrong size!
- fi
- # end of 'Source/WBLink.h'
- fi
- if test -f 'WBLink.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'WBLink.doc'\"
- else
- echo shar: Extracting \"'WBLink.doc'\" \(3434 characters\)
- sed "s/^X//" >'WBLink.doc' <<'END_OF_FILE'
- X
- X WBLink V1.00
- X by Dave Schreiber
- X
- X WBLink is copyright 1991 by Dave Schreiber, All Rights Reserved.
- XWBLink is freely distributable, but the author retains all rights in
- Xregards to the program. Permission is granted to distribute this program
- Xfor a minimal charge (for copying, handling, etc.).
- X
- X WBLink is a small utility I wrote in order to deal with what I think
- Xis a deficiency in Workbench 2.0: namely, there's no way to create a link
- Xfrom one file to another using Workbench (a link is like a second (or
- Xthird, etc.) name for a file; although both the original program and the
- Xlink have their own icon, there's only one copy of the program actually on
- Xdisk. See the description of 'Makelink' in the AmigaDOS reference section
- Xof the manual that came with 2.0 or your Amiga for more information).
- XWBLink creates an 'AppIcon' that allows you to create links easily.
- X
- X To run WBLink, either double-click on it's icon or type 'Run
- XWBLink' from the CLI. If you'd like it to be run automatically when you
- Xboot up, you can put it in your 'Wbstartup' drawer. When run, WBLink puts
- Xup an icon on the Workbench; if you drop the icon for a file or drawer
- Xonto WBLink's icon, a link to that file or drawer is created. The naming
- Xconvention is similar for the Copy menu selection: the first link, for a
- Xprogram named 'prog' for example, will be named Link_to_prog. The second,
- XLink_2_to_prog, etc. Once the link is created, it can be renamed and moved
- Xanywhere on the drive (although if you move it to another disk, regular
- Xcopy of the file is made and put on the destination disk, instead of a
- Xlink; this is due to a limitation in the way the Amiga's OS handles
- Xlinks).
- X
- X Note: while WBLink creates links to files and drawers, it copies
- X.info files. This means that you can position a file and its link
- Xindependently (whereas if WBLink created a link to both the file and .info
- Xfile, every time you moved the original file's icon, the link's icon would
- Xmove to the same location).
- X
- X If you double click on WBLink's icon, a requester pops up that gives
- Xyou the version and release date of WBLink, along with an opportunity to
- Xquit WBLink. To quit, click on the 'Quit WBLink' button. The 'Don't Quit'
- Xbutton closes the requestor, but leaves WBLink running.
- X
- X To give you an idea of the usefulness of links, let me describe one
- Xuse I have for them. I have a number of programs that I run often that I
- Xwould like to have directly on Workbench for easy access. Unfortunatly
- XWorkbench tends to slow down if you leave out a lot of icons. My solution
- Xwas to create a drawer called 'Dock' (after the NeXT's feature of the same
- Xname) and leave that out instead. In that drawer, I placed links to my
- Xfrequently used programs. With this arrangement, I have easy access to my
- Xprograms without cluttering up or slowing down Workbench. Moreover, this
- Xtakes up only a few kilobytes on my hard drive (whereas making copies of
- Xthe programs to put in Dock would have taken up over a megabyte).
- X
- X If you're interested in how WBLink operates, I've included the source.
- XTo compile, using SAS/C V5.10a, type the following in the command line:
- X
- X lc -Lcd -v WBLink
- X
- X If you have any questions, comments, etc. regarding WBLink, please
- Xdon't hesitate to get in touch with me at:
- X
- X Dave Schreiber
- X 1234 Collins Lane
- X San Jose, CA 95129-4208
- Xe-mail: davids@ucscb.ucsc.edu
- X
- END_OF_FILE
- if test 3434 -ne `wc -c <'WBLink.doc'`; then
- echo shar: \"'WBLink.doc'\" unpacked with wrong size!
- fi
- # end of 'WBLink.doc'
- fi
- if test -f 'WBLink.doc.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'WBLink.doc.uu'\"
- else
- echo shar: Extracting \"'WBLink.doc.uu'\" \(408 characters\)
- sed "s/^X//" >'WBLink.doc.uu' <<'END_OF_FILE'
- Xbegin 666 WBLink.doc.info
- XMXQ```0``````/@!2`!0`$@`%``,``0?"1N@`````````````````````````J
- XM```!!#('PD>@!\#O,````#H```!``````````````!`````````4`!$``@`)'
- XM7,@#``````#__P``@`&``('Q0`"``?``G]P0`(``$`";SQ``@``0`)[_D`"`;
- XM`!``G[P0`(``$`">UA``@``0`)_/D`"``!``___P``````!__@``?@Z``'_^A
- XM``!@(^``?__@`&0PX`!__^``80!@`'__X`!@0^``?__@`&$IX`!__^``8#!@+
- XD`'__X```````````$W-Y<SI5=&EL:71I97,O36]R90`````$,
- X``
- Xend
- Xsize 261
- END_OF_FILE
- if test 408 -ne `wc -c <'WBLink.doc.uu'`; then
- echo shar: \"'WBLink.doc.uu'\" unpacked with wrong size!
- fi
- # end of 'WBLink.doc.uu'
- fi
- if test -f 'WBLink.info.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'WBLink.info.uu'\"
- else
- echo shar: Extracting \"'WBLink.info.uu'\" \(1877 characters\)
- sed "s/^X//" >'WBLink.info.uu' <<'END_OF_FILE'
- Xbegin 666 WBLink.info
- XMXQ```0``````*``:`#\`)``&``,``0?$CX`'Q)#8````````````````````P
- XM```!`S('QX_`!\#O6````"0````(`````````````!]````````_`"0``@`):
- XM79@#`````````````````@`````````&``````````8`````````!@`/___P)
- XM```&`#````P```8`(```!```!@!C___&```&`$8`?V(```8`1`'!X@``!@!$^
- XM`0!B```&`$0"`"(```8`1@(^8@``!@!C_G_&```&`"`"0`0```8`,`)`#```;
- XM!@`/_G_P```&```"1___\`8```)8```,!@```!````0&````,?__Q@8````CI
- XM(`!B!@```F,@`"(&```"8R``(@8```)C(``B!@```F,@`&(&```"<S__Q@8`[
- XM``(^(``$!@```@`@``P&```!`'__\`8```'!P```!@```'\````&````````@
- XM``8`````````!@`````````&?_________[__________-5555555550U555@
- XM555555#5555555554-50```%5550U4____%555#57___^5554-4<```Y5550!
- XMU3@``!U555#5.``^'5554-4X`/^=5550U3@!_]U555#5.`'!G5554-4<`8`Y>
- XM5550U5_]O_E555#53_V_\5554-50`8`!5550U555@```!5#5556'___Q4-55,
- XM5`____E0U554#@``.5#5550<P``=4-5559S``!U0U555G,``'5#5556<P``=.
- XM4-5559S``!U0U555C,``.5#5557!W__Y4-555?_?__%0U554_X``!5#5550^^
- XM%5554-5550!55550U555555555#5555555554-5555555550@```````````&
- XM`````#\`)``"``E?V`,````````````````"``````````8`````````!@``V
- XM```````&``____````8`,```#```!@`@```$```&`&/__\8```8`1@!_8@``)
- XM!@!$`<'B```&`$0!`&(```8`1`(`(@``!@!&`CYB```&`&/^?\8```8`(`)`+
- XM!```!@`P`D`,```&``_^?_````8```)'___P!@```E@```P&```"4```!`8`5
- XM``)Q___&!@```F,@`&(&```"8R``(@8```)C(``B!@```F,@`"(&```"8R``V
- XM8@8```)S/__&!@```CX@``0&```"`"``#`8```$`?__P!@```<'````&````"
- XM?P````8`````````!@`````````&``````````9__________O_________\#
- XMU555555555#5555555554-5555555550U5````5555#53___\5554-5?___Y%
- XM5550U1P``#E555#5.```'5554-4X`#X=5550U3@`_YU555#5.`'_W5554-4XX
- XM`<&=5550U1P!@#E555#57_V_^5554-5/_;_Q5550U5`!@`%555#5556````%1
- XM4-5558?___%0U555C___^5#5556.```Y4-5559S``!U0U555G,``'5#5556<K
- XMP``=4-5559S``!U0U555G,``'5#5556,P``Y4-555<'?__E0U555_]__\5#5J
- XM553_@``%4-555#X55550U555`%5555#5555555554-5555555550U5555555:
- XM55"``````````````!%%>%`Z17AP<F5S<U!A:6YT``````@````*1$].3U170
- X$04E4````>
- X``
- Xend
- Xsize 1309
- END_OF_FILE
- if test 1877 -ne `wc -c <'WBLink.info.uu'`; then
- echo shar: \"'WBLink.info.uu'\" unpacked with wrong size!
- fi
- # end of 'WBLink.info.uu'
- fi
- if test -f 'WBLink.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'WBLink.uu'\"
- else
- echo shar: Extracting \"'WBLink.uu'\" \(6853 characters\)
- sed "s/^X//" >'WBLink.uu' <<'END_OF_FILE'
- Xbegin 666 WBLink
- XM```#\P`````````"``````````$```,T```!P@```^D```,T2.=^_B1()`!):
- XM^0`````L>``$1_D```5@<@`@/````&I@`B;!4<C__"E/!:`I3@680JP%G'``+
- XM(CP``#``3J[^SD/Z`:AP`$ZN_=@I0`<$9@9P9&```2PF;@$4*6L`F`642JL`A
- XMK&<``)(@#Y"O`#@&@````(`I0`5D(&L`K-'(T<@B:``0T\G3R2`"<@`2&2E)/
- XM!:C0@5Z``D#__"E`!;!(YT!`(CP``0`!3J[_.DS?`@)*@&8,(#P```/H+P!G#
- XM``$<($`I0`6L(`)3@-2!$;(``"`"4X)1R/_V$;P`("`"4X(1O``B(`(1L2```
- XM(`%1RO_X$+P`(B\(8'@I:P`Z!61P?U*`T:P%9$'K`%Q.KOZ`0>L`7$ZN_HPI'
- XM0`6<+P`D0"`J`"1G&"QL!P0@0"(H``!.KO^@*4`%E"(`3J[_@B(J`"!G&B0\W
- XM```#[4ZN_^(I0`6D9PKEB"!`)V@`"`"D(&P%G"\(2&P%8"!H`"0I:``$!:A.1
- XMN@5N3KH`@G``8`0@+P`$+FP%H"\`("P%C&<$($!.D$ZZ!Q).N@5,2JP%G&<JT
- XM+&P'!"(L!:1G!$ZN_]PB+`649P1.KO^F+'@`!$ZN_WPB;`6<3J[^AF`2("P%@
- XML&<,(FP%K"QX``1.KO\N(FP'!$ZN_F(@'TS??WY.=61O<RYL:6)R87)Y````[
- XM3E7_,$CG-S)Z`$)M_S)#[`0V<``L;`683J[]V"E`!`)F"DAX`#)A``146$]#7
- XM[`1(<``L;`683J[]V"E`!`9F"DAX`$MA``0V6$]#[`16<``L;`683J[]V"E`&
- XM!`IF"DAX`%5A``086$]"ITAL!&A.N@D44$\I0`0.2H!F"DAX`&1A``/Z6$]P2
- XM`"\`+P!(;`+(0J<O+`0.2&P$:G(!+P$O`4ZZ"AI/[P`@*4`$$F8*2'@!+&$`N
- XM`\A83TI%9@`"-B!L!`XL;`683J[^@"!L!`Y.KOZ,)D!*JP`>9P`!Y$(M_S%PD
- XM`!`M_S&PJP`>;``!^'(`$@`D`4C"YX(@:P`B(DC3PBQI``1*%F9(<@`2`"0!C
- XM2,+G@B)(T\)*D6<V.WP``?\R<@`2`"`!2,#G@-'`(A!#[?]$)`EV=$8#+&P'<
- XM!$ZN_FY*@&<``7(B`DZN_)HD0&`><@`2`"`!2,#G@-'`+R@`!"\*3KH$Z%!/T
- XM<``[0/\R2FW_,F<F<``0+?\Q(@!(P>>!(&L`(M'!(A`L;`<$3J[_+B(`3J[_;
- XM@BX`8!YP`!`M_S$B`$C!YX$@:P`BT<$B$"QL!P1.KO^"+@!(;?_4+PIA``%""
- XM4$]*0&<``,I*;?\R9Q9P`!`M_S$B`$C!YX$@:P`BT<$L$&`.(@IT_BQL!P1.G
- XMKO^L+`!*AF=\0>W_U"(()`9V`"QL!P1.KOY$.T#_-$IM_S)F!B("3J[_IDIMB
- XM_S1G."!*+&P$!DZN_[(K0/\X9WPB/(`````@0"%!`#XA00`Z(D!![?_4+&P$)
- XM!DZN_ZP@;?\X3J[_IF!42&W_U$AL!')P`"\`2&P#LB\`3KH(-$_O`!1@.$AL1
- XM!)HO"DAL!(QP`"\`2&P#[B\`3KH(%D_O`!A@&DAL!+9(;`2F<``O`$AL`[(O'
- XM`$ZZ!_I/[P`4(@<L;`<$3J[_@E(M_S%@`/XD2.<`,)'(0^P#>"1()D@L;`0*W
- XM3J[]M$S?#`!3@%?!1`%(@4C!*@$B2RQL!9A.KOZ&8`#]R$*G80`!ADSM3.S_9
- XM$$Y=3G5.5?_02.<C,B9M``@D;0`,?`%(;?_2+PMA``#"4$]^`0Q'`^AD-$J&0
- XM9S!P`#`'+P`O"DAM_])A``!$3^\`#"(*=/XL;`<$3J[_K"P`2H9G!B(&3J[_/
- XMIE)'8,8O"DZZ`MA83W(9L(%N"@Q'`^AG!'`!8`)P`$S?3,1.74YU2.<!,"9OE
- XM`!`D;P`4+B\`&'`!OH!F&$AL!,XO"DZZ`K`NBR\*3KH"N$_O``Q@+$AL!-@O;
- XM"DZZ`IA!Z@`%+H<O"$ZZ`K1(;`3>+PI.N@*2+HLO"DZZ`HI/[P`83-\,@$YU'
- XM2.<#,"9O`!0D;P`82'@`!4AL!.0O"TZZ`=9/[P`,2H!F;$AX``A(;`3J+PM.(
- XMN@'`3^\`#$J`9A!!ZP`(+P@O"DZZ`BQ03V!0?@5\`'`>O@!D,'``$`=R7[(S*
- XM``!F`E(&<`*\`&88<``0!R!+T<!#Z``!+PDO"DZZ`?903V`:4@=@RB\++PI.H
- XMN@'F4$]@"B\++PI.N@':4$],WPS`3G5(YP$"/B\`#B`L!!)G"B!`+&P$`DZN3
- XM_[Y*K`0.9PHO+`0.3KH#O%A/("P$`F<*(D`L;`683J[^8B`L!`9G"B)`+&P%-
- XMF$ZN_F(@+`0*9PHB0"QL!9A.KOYB<``P!R\`3KH"4%A/3-]`@$YU``!.=4YU]
- XM2.<',"XO`!@F;P`<+"\`("\'3KH%%%A/)$`@"F8$</]@-@@J``,``V<02'@`Q
- XM`D*G+P=.N@&\3^\`#"\&+PLO*@`$3KH"6$_O``PJ`$JL!7AG!'#_8`(@!4S?1
- XM#.!.=0``````````<&%(YP<`+B\`$"`L!/13@"P`2D9K,"`&2,#G@$'L!;0JV
- XM,`@`2@5G&@@%``1F%"`&2,#G@$'L!;0O,`@$3KH##%A/4T9@S"\'3KKYZ%A/"
- XM3-\`X$YU```````````````````@+P`$#```86T*#```>FX$!```($YU``!.R
- XM5?_\2.<#,"9O`!PD;P`@+B\`)$J'9S9*$V<R2A)G+G``$!LO`$ZZ_\!R`!(:;
- XM+H$O0``43KK_LEA/(B\`$)*`+`%*AF<$(`9@&E.'8,9*AV<02A-G!'`!8`I*"
- XM$F<$</]@`G``3-\,P$Y=3G4@;P`$(`A*&&;\4TB1P"`(3G4``")O``@@;P`$E
- XM(`@0V6;\3G4B;P`((&\`!"`(2AAF_%.($-EF_$YU```@+P`((&\`!$Y5__0B9
- XM3VP&$/P`+42`<@I.N@)D!D$`,!+!2H!F\!#AO\EF^D(0(`A.79"O``1.=4CG%
- XM`#(F;`;T(`MG%"13(DL@*0`(+'@`!$ZN_RXF2F#HD<@I2`;X*4@&]$S?3`!.:
- XM=4CG#Q`N+P`8+"\`'"HO`"`O!TZZ`R183R9`(`MF!'#_8!XO!2\&+RL`!$ZZK
- XM`.!/[P`,*`!*K`5X9P1P_V`"(`1,WPCP3G4``````````'!A2.<#$"XO`!!'2
- XM[`3X(`MG-`@K``(`&V8H""L``0`;9R`@*P`$D*L`$"P`2H9G$B\&+RL`$"\KJ
- XM`!Q.NOV&3^\`#"938,@O!TZZ_>!83TS?",!.=0``````````<&%(YS<2+B\`P
- XM("9O`"0L+P`H2JP%D&<$3KH"M$*L!7@B!R0+)@8L;`<$3J[_T"H`</^Z@&8.T
- XM3J[_?"E`!7AP!2E`!P`@!4S?2.Q.=0``````````````````````````<&%(B
- XMYS\"+B\`("PO`"0J+P`H2JP%D&<$3KH"5$*L!7@@!5.`(@<D!B8`+&P'!$ZNT
- XM_[XH`'#_N(!F#DZN_WPI0`5X<!8I0`<`(`5*@&<*4X!G"E.`9PQ@&"`&8!0@O
- XM!-"&8`XB!W0`)@(L;`<$3J[_ODS?0/Q.=4CG`!(F;P`,2JL`"F<*(DLL>``$Z
- XM3J[^F!=\`/\`"'#_)T``%'``$"L`#RQX``1.KOZP(DMP(DZN_RY,WT@`3G5((
- XMYP$"+B\`#$JL!9!G!$ZZ`:@B!RQL!P1.KO_<<`!,WT"`3G5*@&H``!Y$@$J!<
- XM:@``#$2!80``($2!3G5A```81(!$@4YU2H%J```,1(%A```&1(!.=2\"2$$TK
- XM`68``")(0$A!2$(T`&<```:$P3`"2$`T`(3!,`)(0C(")!].=2\#=A`,00"`X
- XM9```!N&944,,00@`9```!NF964,,02``9```!N6954-*06L```;CF5-#-`#FJ
- XMJ$A"0D+FJDA#@,$V`#`"-`-(0<3!D()D```(4T/0@63^<@`R`TA#Y[A(0,%!A
- XM)A\D'TYU2.<#,B9O`!@N+P`<</\L>``$3J[^MGP`'`!P_[R`9@1P`&!F<"(BS
- XM/``!``%.KO\Z)$`@"F8((`9.KOZP8$HE2P`*(`<50``)%7P`!``(0BH`#B`&E
- XM%4``#Y/)3J[^VB5``!`@"V<((DI.KOZ>8!I!Z@`8)4@`%$'J`!0E2``<0JH`9
- XM&!5\``(`("`*3-],P$YU+P<N+P`(<``I0`5X2H=K(KZL!/1L'"`'YX!![`6T<
- XM2K`(`&<.(`?G@$'L!;31P"`(8`AP"2E`!P!P`"X?3G4``$CG`0)P`"(\```PE
- XM`"QX``1.KO[.+@`"AP``,`!*AV<@2JP%D&<:(&P%D$Z02H!F`F`.0JP%D$AX=
- XM`!1.NOK$6$],WT"`3G5AN$YU``!(YP`R+'D```0*1^\`$$S;!P!.KOVT3-],W
- XM`$YU2.<`.BQY```$`DGO`!1,W`\#3J[_Q$S?7`!.=0```^P````$`````0``:
- XM#+H```R>````%`````H````````#\`````-?061D07!P26-O;@````RT````6
- XM`U]%87-Y4F5Q=65S=```#)@````````#\@```^H```%8'___X```8```&```Q
- XM0```"```Q___C```C`#^Q```B`.#Q```B`(`Q```B`0`1```C`1\Q```Q_S_I
- XMC```0`2`"```8`2`&```'_S_X`````2/___@``2P```8```@```(``!C__^,@
- XM``!&0`#$``3&0`!$``3&0`!$``3&0`!$``3&0`#$``3F?_^,``1\0``(``0`"
- XM0``8``(`___@``.#@`````#^````````````'___X```/___\```.```<```.
- XM<```.```<`!\.```<`'_.```<`/_N```<`.#.```.`,`<```/_M_\```'_M_Y
- XMX`````,```````,```````,/___@```?___P```<``!P```Y@``X``,Y@``X4
- XM``,Y@``X``,Y@``X``,Y@``X``,9@`!P``.#O__P``/_O__@``'_``````!\X
- XM```````````````````N`!P``@`````#```````?___@``!@```8``!````(,
- XM``#'__^,``",`/[$``"(`X/$``"(`@#$``"(!`!$``",!'S$``#'_/^,``!`M
- XM!(`(``!@!(`8```?_/_@````!(___^``!+```!@`!*````@`!./__XP`!,9`F
- XM`,0`!,9``$0`!,9``$0`!,9``$0`!,9``,0`!.9__XP`!'Q```@`!`!``!@`4
- XM`@#__^```X.``````/X````````````?___@```____P```X``!P``!P```X>
- XM``!P`'PX``!P`?\X``!P`_^X``!P`X,X```X`P!P```_^W_P```?^W_@````Q
- XM`P```````P```````P___^```Q____```QP``'```SF``#@``SF``#@``SF`Y
- XM`#@``SF``#@``SF``#@``QF``'```X.___```_^__^```?\``````'P`````\
- XM`````````````"X`'``"```!9`,``````.,0``$``````%<`'@`N`!P`!@`!N
- XM``$```%0```"M`````````````````````````@```````````"`````@```0
- XM`````````````````$%B;W5T+BXN``!70DQI;FL@5C$N,#`*4F5L96%S960@P
- XM4V5P=&5M8F5R(#0L(#$Y.3$*J3$Y.3$@8GD@1&%V92!38VAR96EB97(`475IC
- XM="!70DQI;FM\1&]N)W0@475I=```````%`````````,6```#(````V!0<F]G!
- XM<F%M(%)E<75E<W0N+BX``$5R<F]R.B`E<PHE<P``3VL``````!0````````#"
- XMC````Z````.N4')O9W)A;2!297%U97-T+BXN``!%<G)O<CH@)7,*)7,*)7,`+
- XM3VL``````!0````````#Q@```]H```/J```````````````````````````D%
- XM5D52.B!70DQI;FL@5C$N,#`@*#0N.2XY,2D````$%G=O<FMB96YC:"YL:6)R[
- XM87)Y`&EC;VXN;&EB<F%R>0``:6YT=6ET:6]N+FQI8G)A<GD```!70DQI;FL`%
- XM`$-O=6QD;B=T(&-R96%T92!T:&4@;&EN:P``0V]U;&1N)W0@;W!E;@!F;W(@\
- XM;&EN:VEN9P!#;W5L9&XG="!C<F5A=&4`82!F:6QE;F%M92!F;W(@=&AE(&QI_
- XM;FL`3&EN:U]T;U\``$QI;FM?`%]T;U\``&QI;FM?`&QI;FM?=&]?```````H:
- XM```%&@``````````````````````````````````````````!3P`````````@
- XM`````````````````````````````````````````````````````````````
- XM``````````````````````/L````$`````$```4:```$^```!#(```/^```#5
- XM^@```_8```/"```#O@```[H```.(```#A````X````+B```"W@```KX```%:J
- X(`````````_+"W
- X``
- Xend
- Xsize 4868
- END_OF_FILE
- if test 6853 -ne `wc -c <'WBLink.uu'`; then
- echo shar: \"'WBLink.uu'\" unpacked with wrong size!
- fi
- # end of 'WBLink.uu'
- fi
- echo shar: End of archive 1 \(of 1\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have the archive.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
- Mail comments to the moderator at <amiga-request@uunet.uu.net>.
- Post requests for sources, and general discussion to comp.sys.amiga.misc.
-